<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var arrs=["alice","coco","lucy","lili"];
        // arrs.forEach(函数);
        arrs.forEach(function(value,index){
            console.log(value);//数组中的元素值
            // console.log(index);//数组中的索引
        });
        // 应用1:简化回调函数的定义
        arrs.forEach((value,index)=>void console.log(value));
        console.log("------------------------");

        // 应用2:箭头函数：固定函数内this的指向
        // ES6中的箭头函数中的this指向于当前箭头函数定义时的上下文对象(调用者)
        // 箭头函数不会构建this，箭头函数中的this是一个引用，引用的是定义时的上下文对象
        // 箭头函数在浏览器中定义时，会层层寻找上下文，如果没有，恒指向window
        var user={
            name:"alice",
            print1:function(){
                console.log(this);
            },
            print2:()=>{
                console.log(this);
            },
            print3:function(){
                "use strict";
                console.log(this);
                function show1(){
                    console.log(this);
                }
                let show2=()=>{
                    console.log(this);
                };
                show1();
                show2();
            }
        };
        // user.print1();
        // user.print2();
        // user.print3();

        console.log("========================================");
        let objs={
            name:"嘻嘻嘻嘻",
            print:function(){
                let f1=()=>{
                    let f2=()=>{
                        let f3=()=>{
                            let f4=()=>{
                                console.log(this);
                            };
                            f4();
                        };
                        f3();
                    };
                    f2();
                };
                f1();
            }
        };
        objs.print();

    </script>
</head>
<body>
    
</body>
</html>